Skip to main content

网络请求 + json 解析

请求并解析

getProductInfo([int page = 0]) async {
String url = 'http://127.0.0.1/test.json';
print('object 获取信息');
var res = await http.get(Uri.parse(url));
String body = res.body;
var json = jsonDecode(body);
print(json['data']);
var ee = movieListModel.fromJson(json);
print('fffff 解析?' + ee.data[0].pic.toString());
print('gggg 解析?' + ee.totals.toString());
return json;
}

                  Dio dio = new Dio();
var response = await dio.get('https://gank.io/api/v2/banners',
options: Options(responseType: ResponseType.plain));
var _BannerInfo =
Banners.fromJson(jsonDecode(response.data.toString()));
print(_BannerInfo.data[0].title);

模型

//电影信息数据转化
class movieInfoModel {
final String name;
final String pic;
int year;

movieInfoModel({this.name, this.pic, this.year});


factory movieInfoModel.fromJson(dynamic json) {
return movieInfoModel(
name: json['name'], pic: json['pic'], year: json['year']);
}

Map<String, dynamic> toJson() => {'name': name, 'pic': pic, 'year': year};
}

class movieListModel {
List<movieInfoModel> data;
int code;
int totals;
movieListModel({this.data, this.code, this.totals});

factory movieListModel.fromJson(dynamic json) {
return movieListModel(
data: (json['data'] as List)
.map((e) => movieInfoModel.fromJson(e))
.toList(),
code: json['code'],
totals: json['totals']);
}
factory movieListModel.fromJson2(List json) {
return movieListModel(
data: json.map((e) => movieInfoModel.fromJson(e)).toList());
}
}

json数据


{"totals":50,"code":0,"data":[
{
"name": "初恋这件小事", "pic": "http://pic.yc370.com/upload/vod/2019-11-18/15740418316.jpg","year": 2010
},{
"name": "初恋这件小事", "pic": "http://pic.yc370.com/upload/vod/2019-11-18/15740418316.jpg","year": 2010
},{
"name": "初恋这件小事", "pic": "http://pic.yc370.com/upload/vod/2019-11-18/15740418316.jpg","year": 2010
},{
"name": "初恋这件小事", "pic": "http://pic.yc370.com/upload/vod/2019-11-18/15740418316.jpg","year": 2010
},{
"name": "初恋这件小事", "pic": "http://pic.yc370.com/upload/vod/2019-11-18/15740418316.jpg","year": 2010
}
]}